package com.clk.portfoy.complib.portfoy.izleme;

import java.util.Vector;

import com.clk.portfoy.classlib.portfoy.AbsDeger;

/*
 * kisitSatiri = new ClkPortfoyDegerRow();
 * 	kisitSatiri.add(RANDEVU_COLUMN.BASSAAT.getIndex(), rs.getString(1));
 */

public class ClkIzlemeRow extends Vector<Object> {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	// ---------------------------------------------------------------------------------
	public static enum IZLEME_COLUMN {
		ISIM(0, "Portfoy", 50), //
		GRUP(1, "GRUP", 20), //
		ANLIK_LOT(2, "AnlikLot", 50), //
		PER_SEANS_FARK(3, "SeansFark", 40), ;

		private int index;
		private String identifierText = "";
		private int size;

		private IZLEME_COLUMN(int index, String identifierText, int size) {
			this.index = index;
			this.identifierText = identifierText;
			this.size = size;
		}

		public int getIndex() {
			return index;
		}

		public String getIdentifierText() {
			return this.identifierText;
		}

		public int getSize() {
			return this.size;
		}
	}

	// ---------------------------------------------------------------------------------
	public void add(int index, Object element) {
		if (this.size() > index) {
			this.remove(index);
		}
		if (element == null) {
			element = "";
		}
		super.add(index, element);
	}

	// ---------------------------------------------------------------------------------
	public ClkIzlemeRow() {
		this.add(IZLEME_COLUMN.ISIM.getIndex(), "");
		this.add(IZLEME_COLUMN.GRUP.getIndex(), "");
		this.add(IZLEME_COLUMN.ANLIK_LOT.getIndex(), "");
		this.add(IZLEME_COLUMN.PER_SEANS_FARK.getIndex(), "");
	}

	// ---------------------------------------------------------------------------------
	public static ClkIzlemeRow rowConverter(AbsDeger senet) {
		ClkIzlemeRow columnData = new ClkIzlemeRow();
		columnData.add(IZLEME_COLUMN.ISIM.getIndex(), senet.getIsim());
		columnData.add(IZLEME_COLUMN.GRUP.getIndex(), senet.getGrup());
		columnData.add(IZLEME_COLUMN.ANLIK_LOT.getIndex(), senet.getAnlikDegerSet());
		columnData.add(IZLEME_COLUMN.PER_SEANS_FARK.getIndex(), senet.getChangePercentage());
		return columnData;
	}

	// ---------------------------------------------------------------------------------
	public static Vector<String> getColumnData() {
		Vector<String> columnData = new Vector<String>();
		columnData.add(IZLEME_COLUMN.ISIM.getIndex(), IZLEME_COLUMN.ISIM.getIdentifierText());
		columnData.add(IZLEME_COLUMN.GRUP.getIndex(), IZLEME_COLUMN.GRUP.getIdentifierText());
		columnData.add(IZLEME_COLUMN.ANLIK_LOT.getIndex(), IZLEME_COLUMN.ANLIK_LOT.getIdentifierText());
		columnData.add(IZLEME_COLUMN.PER_SEANS_FARK.getIndex(), IZLEME_COLUMN.PER_SEANS_FARK.getIdentifierText());
		return columnData;
	}

	// ---------------------------------------------------------------------------------
	public static void prepareDegerlendirmeTableColumnSize(ClkIzlemeTable degerlendirmeTable) {
		degerlendirmeTable.getColumnModel().getColumn(IZLEME_COLUMN.ISIM.getIndex())
				.setPreferredWidth(IZLEME_COLUMN.ISIM.getSize());
		degerlendirmeTable.getColumnModel().getColumn(IZLEME_COLUMN.GRUP.getIndex()).setPreferredWidth(IZLEME_COLUMN.GRUP.getSize());
		degerlendirmeTable.getColumnModel().getColumn(IZLEME_COLUMN.ANLIK_LOT.getIndex())
				.setPreferredWidth(IZLEME_COLUMN.ANLIK_LOT.getSize());
		degerlendirmeTable.getColumnModel().getColumn(IZLEME_COLUMN.PER_SEANS_FARK.getIndex())
		.setPreferredWidth(IZLEME_COLUMN.PER_SEANS_FARK.getSize());
	}
	// ---------------------------------------------------------------------------------
}
